// C++程序在执行时，将内存大方向划分为4个区域
// 全局区：存放全局变量和静态变量以及常量
// 代码区：存放函数体的二进制代码，由操作系统进行管理的
// 栈区：由编译器自动分配释放, 存放函数的参数值,局部变量等
// 堆区：由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

#include <iostream>
using namespace std;

int * request_memory();  // 申请内存

int * request_memory()
{
    // 用 new 申请内存 delete 释放内存
    int *a = new int(10);  // new int[10]  开辟数组
    return a;
}

int main()
{
    int *p = NULL;
    p = request_memory();
    cout << "require memory address: " << p << " value: " << *p << endl;
    delete p;
    return 0; 
}